<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>前瞻断言与后瞻断言</title>
</head>
<body>
    <script>
        // 【前瞻断言】
        // 语法：x(?=y) 它表示“仅在后面是Y时匹配X”。这里的X和Y可以是任何模式。
        // 它的匹配模式是，当正则表达式引擎找到x时，然后检查其后是否有y。如果没有，则跳过潜在匹配，并继续搜索。

        // 示例：匹配数字后面跟€符号的整数
        let str = "1 turkey costs 300€"
        console.log(str.match(/\d+(?=€)/).toString()) // 300
    </script>

    <script>
        // 【否定的前瞻断言】
        // 语法：X(?!Y) 它表示是“搜索 X，但前提是后面没有 Y”

        let str1  = "2 tt cost 60€"
        console.log(str1.match(/\d+(?!€)/).toString()) // 2
    </script>

    <script>
        // 【后瞻断言】
        // 它只允许匹配前面有特定字符串的模式。
        // 非 V8 引擎的浏览器不支持后瞻断言，例如 Safari、Internet Explorer。

        let str2 = "1 turkey costs $30"
        console.log(str2.match(/(?<=\$)\d+/).toString()) // 30
    </script>

    <script>
        
    </script>
</body>
</html>